#pragma once
#include "matrix.h"

class CameraLookat
{
public:

	Vector3 m_position;
	Vector3 m_up;
	Vector3 m_target;
	Matrix m_viewMatrix;
	Matrix m_projectMatrix;
	GLfloat m_speed;

	GLfloat m_fovY;
	GLfloat m_aspect;
	GLfloat m_nearPlane;
	GLfloat m_farPlane;

	void Init(GLfloat fovY, GLfloat aspect, GLfloat nearPlane, GLfloat farPlane, GLfloat speed);
	void CalculateProjectMatrix();
	Matrix CalculateViewProjectMatrix();
	Matrix CalculateWorldMatrix();

	void Update();

	void Move(Direction direction);

	void Rotate(Direction direction);

	CameraLookat(void);
	~CameraLookat(void);
};
